package it.azienda.framework.utilita;

import java.text.*;
import org.apache.log4j.Logger;
import org.apache.commons.beanutils.Converter; 

/**
 *
 * @author  margoneto
 */
public class DateConverter implements Converter{
   private org.apache.commons.beanutils.converters.SqlDateConverter 
sqlDateConverter = new 
org.apache.commons.beanutils.converters.SqlDateConverter(); 

    /** Creates a new instance of CurrencyConverter */
    public DateConverter() {
        
    }
    public Object convert(Class type, Object value) { 
        String data = (String)value;
         java.sql.Date sqlDate = null;
        if( (data.equals("")) || (data == null) ){   
            value = "gg/mm/aaaa";
        }else{
            Logger.getLogger("Modello").debug("VisualizzaData : " + data);
            String[] dataSpezzettata = data.split("/"); 
            Logger.getLogger("Modello").debug("Ecco il giorno: " + dataSpezzettata[0]);
            Logger.getLogger("Modello").debug("Ecco il mese: " + dataSpezzettata[1]);
            Logger.getLogger("Modello").debug("Ecco l'anno: " + dataSpezzettata[2]);
            String stringDate = dataSpezzettata[2] + "-" + dataSpezzettata[1] + "-" +
                dataSpezzettata[0];
            ParsePosition pp = new ParsePosition(0);
            String stringFormat = "yyyy-MM-dd"; //Fai attenzione a maiuscole e minuscole
            SimpleDateFormat format = new SimpleDateFormat(stringFormat);
            format.setLenient(false);
              java.util.Date date = format.parse(stringDate, pp);
              try {
                date = format.parse(stringDate);
                sqlDate = new java.sql.Date(date.getTime());
                Logger.getLogger("Modello").debug("Data in formato SQL: " + sqlDate.toString());
              }
              catch (ParseException e) {
                Logger.getLogger("Finanziaria").error(
                    "Errore nella formattazione della DATA: ");
              }
            }
    
        return sqlDateConverter.convert(type, sqlDate); 
    }
    
}
